/*
 *  EidoTronApp.h
 *  EidoTron
 *
 *  Created by Luca Di Franco on 07/03/11.
 *  Copyright 2011 Luca Di Franco. All rights reserved.
 *
 */

#ifndef __EIDO_TRON_APP_H__
#define __EIDO_TRON_APP_H__

#include <SDL.h>
#include <SDL_opengl.h>

class SceneNode;

class EidoTronApp 
{
	
private:
	bool			running;
	bool			pause;
	SDL_Surface*	displaySurface;
	
	SceneNode*		camera;
	SceneNode*		redCycle;
	SceneNode*		greenCycle;
	SceneNode*		blueCycle;
	SceneNode*		battleground;

public:
	EidoTronApp();
	virtual ~EidoTronApp();
	
	int execute();
	
	bool setupWindow();
	// Handles all the loading of data, whether it be textures, maps, NPCs, or whatever.
	void initScene();
	// Handle all input events from the mouse, keyboard, joysticks, or other devices.
	void menuEventListener(SDL_Event* event);
	void gameEventListener();
	// Handles all the data updates, such as a NPCs moving across the screen, decreasing your health bar, or whatever.
	void loop();
	// Handles all the rendering of anything that shows up on the screen. It does NOT handle data manipulation, as this is what the Loop function is supposed to handle.
	void render();
	// Cleans up any resources loaded, and insures a peaceful quitting of the game.
	void cleanup();
	
};

#endif